Общие сведения

Touhou Toolkit (коротко — thtk) — это инструмент для распаковки и модификации файлов ресурсов игр серии Touhou. Он позволяет извлекать и изменять игровые спрайты, текстуры, графические элементы интерфейса; внутриигровые тексты; скрипты уровней, задающие движения противников и формулы атак; демо-реплеи и игровые звуки. Он не позволяет работать с музыкой (кроме midi-музыки в 6-8 частях) и файлами сохранений.

Touhou Toolkit включает четыре консольных приложения: thdat обрабатывает базовые dat-файлы игры, остальные три — внутренние файлы, получаемые после их распаковки: thanm — графику, thmsg — диалоги, thecl — скрипты. Он полноценно работает с играми, начиная с шестой части. thdat также может работать с dat-файлами игр для PC-98 (как правило, эти игры хранятся в образах дисков с расширением hdi, и их можно распаковать), но получаемые при распаковке файлы (за исключением текстовых) не обрабатываются thtk.

Touhou Toolkit является консольным приложением, а данная программа — графическим интерфейсом для него. Перед началом работы с программой укажите в меню «Настройки» адрес папки с распакованным thtk, последнюю версию которого можно скачать с репозитория на Google Code. В состав архива thtk также входит более подробная справка по работе каждой из утилит.

THDAT

Первым этапом работы с thtk является распаковка основного dat-файлы игры. Выберите нужную игру в главном меню (формат dat-файлов менялся от игры к игре), в поле «Папка» укажите папку, в которую его нужно распаковать, в поле «Файл» — адрес нужного dat-файла. Указывайте основной dat-файл, имеющий название формата th№(e|r).dat (для шестой части — любой из шести dat-файлов, отличающихся двубуквенными сокращениями); файлы thbgm.dat и score.dat посредством thtk распаковать нельзя. Назначение кнопок:

- «Распаковать архив» распаковывает dat-файл в указанную папку.

- «Получить список файлов» создаёт в подпапке \lists основной папки программы список файлов архива в формате txt. Этот список необходим для сборки dat-файла, поэтому изменять его не рекомендуется — это может повлиять на работоспособность игры. Файл списка также создаётся автоматически при распаковке архива.

- «Создать архив» создаёт из файлов в указанной папке новый dat-файл. Если целевой dat-файл уже существует, он будет переименован перед выполнением действия (получит дополнительное расширение .bkp№), если в настройках включена опция «Создавать резервную копию». Иначе он будет заменён.

После распаковки в целевой папке появятся файлы игрового контента. Некоторые из них (например, демо-реплеи, изображения и звуки) можно заменять непосредственно. anm-, ecl- и msg-файлы подлежат дальнейшей распаковке другими программами из состава thtk. Остальные, например, .sht и .std, thtk не обрабатывает.

THANM

Файлы с расширением .anm содержат игровую графику в виде файлов в формате PNG, а также скрипты, описывающие поведение графических элементов. Они распаковываются и собираются аналогично dat-файлам с двумя отличиями:

- Программа автоматически генерирует предлагаемое имя целевой папки для распаковки, совпадающее с именем anm-файла. Кроме того, файлы внутри anm-архива организованы в каталожную структуру, которая воссоздаётся внутри целевой папки при распковке. Изменение структуры или имён каталогов приведёт к неработоспособности игры.

- Информацией для создания архива служит не простой список файлов, а особый текстовый файл — спецификация. Предлагаемое имя спецификации также генерируется программой автоматически.

Утилита также предоставляет возможность заменить одно из изображений в anm-файле, не производя полной пересборки архива. Для этого в строке «Имя» укажите заменяемую позицию (для её выбора воспользуйтесь кнопкой «...» справа от поля ввода), а в строке «Файл» - новую версию изображения, после чего нажмите «Заменить файл в архиве».

THMSG

В msg-файлах хранятся игровые диалоги. Такие файлы могут иметь название формата *.msg (в более новых играх) или msg*.dat (в более старых), каждый из них содержит один txt-файл (в кодировке Shift JIS в оригинальных файлах, ASCII в англофицированных). Кнопка «Выгрузить архив» распаковывает содержимое msg-файла, выбранного в поле «Архив», в файл, указанный в поле «Файл», кнопка «Создать архив» проводит обратную процедуру. Программа автоматически генерирует предлагаемое имя целевого файла для распаковки, совпадающее с именем msg-файла.

THECL

В ecl-файлах хранятся скрипты, задающие движения противников, формулы атак и пр. Их внутреннее устройство и обращение с ними в программе аналогичны описаным выше для msg-файлов. На странице thtk на GoogleCode имеется неполное описание скриптового языка, используемого в этих файлах. ВНИМАНИЕ! Существует известный баг при создании ecl-файла из текстового файла. При этом утилита выводит сообщение об ошибке синтаксиса, а целевой ecl-файл необратимо повреждается. Причина бага в том, что утилита неверно обрабатывает экранированные двойные кавычки (символы \"), которые используются в названиях спеллкарт. Для исправления этой ошибки достаточно в исходном текстовом файле заменить все вхождения комбинации \" на любой символ или комбинацию символов (кроме ").